// class C {
//   #name = "111"; // 私有属性
//   age; // 默认是公有
//   static hh; // 静态属性
//   constructor(user = {}) {
//     // ({ age: this.age } = user);
//     const { name, age, hh } = user || {};
//     this.#name = name;
//     this.age = age;
//     C.hh = hh;
//   }
//   show() {
//     this.#s1();
//     console.log(this.#name, this.age);
//   }
//   #s1() {
//     console.log(this.#name);
//   }
//   static huu() {
//     console.log(this.hh); // 静态方法里面this指向class
//   }

//   get name1() {
//     return this.#name;
//   }

//   set name1(value) {
//     this.#name = value;
//   }
// }

// let c = new C({
//   name: "kkk",
//   age: 19,
//   hh: "000",
// });
// c.show();
// // c.s1();
// console.log(C.hh);
// console.log(c.name1); // 调用getter
// c.show();
// c.name1 = "wwww";
// console.log(c.name1); // 调用setter
// c.show();

// console.log(C.hh);
// C.huu();

// class Foo0001 {
//   static name = "静态属性name";
//   static hh = "dgdg";
//   a = 8;
//   #b = 2;

//   constructor() {
//     // this.a = a;
//   }

//   // 静态⽅法bar
//   static bar() {
//     // 静态⽅法bar调⽤了this.baz，这⾥的this指的是Foo类，⽽不是Foo的实例,所以调⽤的是静态⽅法baz
//     // this.baz();
//     Foo0001.baz();
//   }
//   // 静态⽅法baz
//   static baz() {
//     console.log("静态⽅法baz");
//   }
//   // 普通⽅法baz
//   // baz() {
//   //   console.log("普通⽅法baz");
//   // }
//   bar() {
//     // 普通⽅法中的this指向调⽤它的对象
//     // this.baz();
//     console.log("父类的bar");
//   }
//   get b() {
//     return this.#b;
//   }
//   set b(value) {
//     this.#b = value;
//   }
// }

// class F extends Foo0001 {
//   // a = "9090909";
//   constructor(lll) {
//     super();
//     // this.a = a;
//     this.lll = lll; // 子类继承父类时，当子类有构造方法时，必须通过super继承，没有super去访问this指针会报错
//   }

//   hhh() {
//     console.log(super.a, this.a);
//     super.b = "plplp";
//     console.log(super.b);
//     super.bar();
//     // super.baz();
//   }

//   static lolo() {
//     console.log(super.hh);
//     super.bar();
//     super.b = "plplp";
//     console.log(super.b);
//   }

//   // bar() {
//   //   console.log("子类的bar");
//   // }
// }

// let foo01 = new Foo0001(10);
// Foo0001.bar();
// let f = new F("000", "2222");
// f.b = 3;
// // F.bar();
// // console.log(f.a, f.b, f.lll, F.hh);
// // f.hhh();

// F.lolo();

// 第八次考试
// let a = +"3";
// console.log(typeof a);
// console.log("hello world".length);
// console.log([1, 2, 3].join(",").split(","));
// let a = "1";
// let b = "2";
// console.log(+a + +b);
// console.log((b - a) * 3);
// console.log(parseInt(a) + parseInt(b));
// console.log(Number(a) + Number(b));
// let str = "fengxx";
// let str1 =
//   str.slice(0, str.length - 1) + str.charAt(str.length - 1).toLocaleUpperCase();
// console.log(str1);
// console.log([1, 3, 2, 5, 3].sort((a, b) => b - a));
// console.log([1, 3, 2, 5, 3].reverse());

// let user = undefined;
// let { name, age } = user || {};

// let a = undefined || "a"; // 逻辑运算符
// let b = undefined && "a";
// console.log(a, b);
// let a = {
//   a: 1,
// };
// let b = a;
// a.a = 2;
// console.log(a, b);

// 数组去重函数封装
// function fun(arr = []) {
//   // let newArr = [...new Set(arr)];
//   // return newArr;

//   // return arr.filter((item, index) => arr.indexOf(item) === index);

//   let newArr = [];
//   arr.forEach((item) => {
//     if (newArr.indexOf(item) === -1) {
//       newArr.push(item);
//     }
//   });
//   return newArr;
// }

// console.log(fun([1, 1, 2, 2, 3, 4, 4]));


